A networked data storage system can be used for a variety of purposes, such as providing multiple users access to shared data, or facilitating backups or data mirroring. A networked data storage system may include a number of storage servers. A storage server provides services related to the accessing and organizing data on mass storage devices, such as disks. Some storage servers are commonly referred to as filers or file servers, as these storage servers provide clients with file-level access to data. Some storage servers provide clients with sub-file level access to data (e.g., block-level access). Other storage servers provide clients with both file-level access and sub-file level access; an example of such a storage server is any of the Filer products made by Network Appliance, Inc. in Sunnyvale, Calif. A storage server may be implemented with a special-purpose computer or a general-purpose computer programmed in a particular way. Depending on the application, various networked storage systems may include different numbers of storage servers.
Logical units of storage may be created and manipulated on storage servers, such as files, directories volumes, qtrees (which is a subset of a volume, optionally associated with a space usage quota), logical unit numbers (LUNs), etc. Such logical units are referred to as storage objects in this document. Creating a single storage object is typically fast and easy, but managing a storage object over time is more difficult. A storage administrator has to make numerous decisions, such as how to monitor the available space for the storage object, how to schedule data backups, how to configure backups, whether the data should be mirrored, where data should be mirrored, etc. Answers to the above questions may be summarized in a data management policy. When the data management policy is determined, the administrator works to ensure that the policy is correctly implemented on all relevant storage objects, that the required space is available, that the data protection operations succeed, and the like. If the administrator decides to change the policy (for example, extending the amount of time that backups should be retained), the administrator normally must find all of the affected storage objects and then manually re-configure all of the relevant settings.
As the number of storage objects grows in the system, the administrator's job becomes more difficult and complex. It becomes increasingly likely that the administrator may not readily determine what policy was supposed to apply to a given storage object, or why a given volume is mirrored. In addition, the administrator normally has to perform many tedious manual tasks for each storage object, which can be error prone and unreliable. A large data center may have hundreds to over a thousand storage servers. Each storage server may manage hundreds of storage objects (e.g., volumes and thousands of qtrees). This leads to a total of tens to hundreds of thousands of storage objects to manage with a similar number of backup and mirror relationships. The number of objects typically grows faster than information technology headcounts, so each administrator manages more and more objects over time. Eventually, the sheer number of objects makes it increasingly less economical, if not impossible, for an administrator to reliably implement data management policies and to accurately provide records for billing (e.g., chargeback) purposes. To accurately provide records for charge back purposes, the storage provider currently needs to identify all the volumes that store data for an application, add them to a resource group using the storage manager, and then generate workgroup level chargeback reports. Maintaining correct membership for workgroups adds considerable overhead in a rapidly evolving data center.
Chargeback is a process of billing users of storage solutions for (ideally) the actual costs of providing the services to the users. Tracking actual costs of IT equipment is difficult, especially when the equipment is shared by different workgroups within a company that the IT administrator serves. Often the cost is merely “expensed” as a general overhead cost because of the difficulties in aggregating the actual costs incurred by each workgroup. Accurately aggregating the costs by workgroup can be difficult because of the ever-changing configuration of storage solutions that are implemented using high or low performance equipment that has varying ages (and may or may not be fully amortized) and because of differing administration policies. Intelligent guesses are often used to assign the varying costs, but the guesses suffer from being subjective, and are subject to being challenged by supervisors and managers seeking to protect their budgets. Thus, a storage administrator needs help tracking what storage objects exist in a storage system, how the storage objects relate to users, and which chargeback policies should be applied to the storage objects.